//package org.howie.common;
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.redis.core.HashOperations;
//import org.springframework.data.redis.core.RedisTemplate;
//import org.springframework.data.redis.core.StringRedisTemplate;
//import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
//import org.springframework.data.redis.serializer.RedisSerializer;
//import org.springframework.data.redis.serializer.StringRedisSerializer;
//import org.springframework.stereotype.Component;
//
//import java.util.concurrent.TimeUnit;
//
//
//@Component
//public class RedisUtil {
//
//    @Autowired
//    private StringRedisTemplate stringRedisTemplate;
//    private RedisTemplate redisTemplate;
//
//    @Autowired
//    public void setRedisTemplate(RedisTemplate redisTemplate) {
//        RedisSerializer stringSerializer = new StringRedisSerializer();//序列化为String
//        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);//序列化为Json
//        redisTemplate.setKeySerializer(stringSerializer);
//        redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
//        redisTemplate.setHashKeySerializer(stringSerializer);
//        redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
//        this.redisTemplate = redisTemplate;
//    }
//
//    @Autowired
//    private static RedisUtil redisUtil;
//
//    private static HashOperations<String, String, String> operations;
//
////    @PostConstruct
////    public void init (){
////        redisUtil=this;
////        redisUtil.redisTemplate=this.redisTemplate;
////    }
//
//
//    public static HashOperations<String, String, String> getInstance() {
//        if (operations == null) {
//            operations = redisUtil.redisTemplate.opsForHash();
//        }
//        return operations;
//    }
//
//        /**
//         * 存放string类型
//         *
//         * @param key     key
//         * @param data    数据
//         * @param timeout 超时间
//         */
//    public void setString(String key, String data, Long timeout) {
//        stringRedisTemplate.opsForValue().set(key, data);
//        if (timeout != null) {
//            stringRedisTemplate.expire(key, timeout, TimeUnit.SECONDS);
//        }
//    }
//
//    public void refreshKey(String key,Long timeout, TimeUnit unit){
//        stringRedisTemplate.expire(key, timeout, unit);
//    }
//
//    /**
//     * 存放string类型
//     *
//     * @param key  key
//     * @param data 数据
//     */
//    public void setString(String key, String data) {
//        setString(key, data, null);
//    }
//
//    /**
//     * 根据key查询string类型
//     *
//     * @param key
//     * @return
//     */
//    public String getString(String key) {
//        String value = stringRedisTemplate.opsForValue().get(key);
//        return value;
//    }
//
//    /**
//     * 根据对应的key删除key
//     *
//     * @param key
//     */
//    public boolean delKey(String key) {
//        return stringRedisTemplate.delete(key);
//    }
//
//    /**
//     * @author lvxiongfei
//     * @serialData 2020-07-07
//     * @param redisKey
//     * @param toJSONString
//     * @param time
//     * @param unit
//     */
//    public void setStringTimeOut(String redisKey, String toJSONString, Long time, TimeUnit unit) {
//        stringRedisTemplate.opsForValue().set(redisKey, toJSONString,time,TimeUnit.HOURS);
//    }
//
//    public void setHash(String key,String key1,String value){
//        HashOperations operations=getInstance();
//        operations.put(key, key1, value);
//    }
//
//    public String getHash(String key,String key1){
//        operations=getInstance();
//        return operations.get(key, key1);
//    }
//
//    /**
//     * 判断redis key是否存在
//     * @author lyndon 2020/07/31
//     * @param key
//     * @return
//     */
//    public boolean containsKey(String key) {
//        return stringRedisTemplate.hasKey(key);
//    }
//
//    /**
//     * redis加法
//     * @author lyndon 2020/07/31
//     * @param key
//     * @param number
//     * @return
//     */
//    public Long incr(String key, Long number) {
//        return stringRedisTemplate.boundValueOps(key).increment(number);
//    }
//
//    public void deleteHashRow(String key1,String key2){
//        operations=getInstance();
//        operations.delete(key1, key2);
//    }
//}
